From: Greg Rutz Date: Tue, 7 May 2013 14:26:03 +0000 (-0600) Subject: mpegtsmux: Fix memory leak when using prepare_func X-Git-Tag: 1.19.3~507^2~13753 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4d4fd09a3a00ce97dcaacb30377e350391fd64b0;p=platform%2Fupstream%2Fgstreamer.git mpegtsmux: Fix memory leak when using prepare_func prepare_func will allocate a new buffer to replace the original one. Instead of using gst_buffer_replace (which causes an extra refcount increment on the new buffer), we just unref the original buffer. https://bugzilla.gnome.org/show_bug.cgi?id=699786 --- diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c index 78e7cbd568..ed5f98823e 100644 --- a/gst/mpegtsmux/mpegtsmux.c +++ b/gst/mpegtsmux/mpegtsmux.c @@ -1018,9 +1018,9 @@ mpegtsmux_clip_inc_running_time (GstCollectPads * pads, if (pad_data->prepare_func) { MpegTsMux *mux = (MpegTsMux *) user_data; - buf = pad_data->prepare_func (buf, pad_data, mux); - if (buf) - gst_buffer_replace (outbuf, buf); + *outbuf = pad_data->prepare_func (buf, pad_data, mux); + g_assert (*outbuf); + gst_buffer_unref (buf); } return GST_FLOW_OK;