rtpvp8pay: Fix allocation to support source-info property
authorStian Selnes <stian@pexip.com>
Fri, 23 Oct 2015 09:08:56 +0000 (11:08 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 28 Sep 2020 15:27:17 +0000 (15:27 +0000)
Use gst_rtp_base_payload_allocate_output_buffer() in order to allocate
RTP buffer with correct number of CSRCs according to the meta.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/314

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/612>

gst/rtp/gstrtpvp8pay.c

index 4d6d20f..e3c8b34 100644 (file)
@@ -385,7 +385,9 @@ gst_rtp_vp8_create_header_buffer (GstRtpVP8Pay * self, guint8 partid,
   guint8 *p;
   GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
 
-  out = gst_rtp_buffer_new_allocate (gst_rtp_vp8_calc_header_len (self), 0, 0);
+  out = gst_rtp_base_payload_allocate_output_buffer (
+      GST_RTP_BASE_PAYLOAD_CAST (self), gst_rtp_vp8_calc_header_len (self),
+      0, 0);
   gst_rtp_buffer_map (out, GST_MAP_READWRITE, &rtpbuffer);
   p = gst_rtp_buffer_get_payload (&rtpbuffer);
   /* X=0,R=0,N=0,S=start,PartID=partid */
@@ -470,7 +472,8 @@ gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
 
   mtu = GST_RTP_BASE_PAYLOAD_MTU (payload);
   vp8_hdr_len = gst_rtp_vp8_calc_header_len (self);
-  max_paylen = gst_rtp_buffer_calc_payload_len (mtu - vp8_hdr_len, 0, 0);
+  max_paylen = gst_rtp_buffer_calc_payload_len (mtu - vp8_hdr_len, 0,
+      gst_rtp_base_payload_get_source_count (payload, buffer));
 
   list = gst_buffer_list_new_sized ((size / max_paylen) + 1);