From: Tim-Philipp Müller Date: Thu, 7 Jan 2016 20:27:29 +0000 (+0000) Subject: rtpvrawdepay: fix major memory leak and performance issue X-Git-Tag: 1.19.3~509^2~3022 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a8b864397764af49aa7827056e6c799175b38f39;p=platform%2Fupstream%2Fgstreamer.git rtpvrawdepay: fix major memory leak and performance issue We call gst_rtp_buffer_get_payload() which creates a sub-buffer of each input buffer, just to copy over metas, and then leak it. https://bugzilla.gnome.org/show_bug.cgi?id=760289 --- diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c index 051e312..b5e6dfd 100644 --- a/gst/rtp/gstrtpvrawdepay.c +++ b/gst/rtp/gstrtpvrawdepay.c @@ -330,7 +330,7 @@ gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload, gint width, height, xinc, yinc; GstVideoFrame *frame; gboolean marker; - GstBuffer *buf, *outbuf = NULL; + GstBuffer *outbuf = NULL; rtpvrawdepay = GST_RTP_VRAW_DEPAY (depayload); @@ -398,7 +398,6 @@ gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload, payload = gst_rtp_buffer_get_payload (rtp); payload_len = gst_rtp_buffer_get_payload_len (rtp); - buf = gst_rtp_buffer_get_payload_buffer (rtp); if (payload_len < 3) goto short_packet; @@ -410,8 +409,8 @@ gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload, /* remember header position */ headers = payload; - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawdepay), frame->buffer, buf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawdepay), frame->buffer, + rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); /* find data start */ do {